<?php
	/**
	 * This is a MetaControl class, providing a QForm or QPanel access to event handlers
	 * and QControls to perform the Create, Edit, and Delete functionality
	 * of the TableProject class.  This code-generated class
	 * contains all the basic elements to help a QPanel or QForm display an HTML form that can
	 * manipulate a single TableProject object.
	 *
	 * To take advantage of some (or all) of these control objects, you
	 * must create a new QForm or QPanel which instantiates a TableProjectMetaControl
	 * class.
	 *
	 * Any and all changes to this file will be overwritten with any subsequent
	 * code re-generation.
	 * 
	 * @package My Application
	 * @subpackage MetaControls
	 * property-read TableProject $TableProject the actual TableProject data class being edited
	 * property QLabel $IdControl
	 * property-read QLabel $IdLabel
	 * property QIntegerTextBox $CategoryIdControl
	 * property-read QLabel $CategoryIdLabel
	 * property QIntegerTextBox $SubcategoryIdControl
	 * property-read QLabel $SubcategoryIdLabel
	 * property QTextBox $TitleControl
	 * property-read QLabel $TitleLabel
	 * property QTextBox $DescriptionControl
	 * property-read QLabel $DescriptionLabel
	 * property QTextBox $OsControl
	 * property-read QLabel $OsLabel
	 * property QTextBox $DbControl
	 * property-read QLabel $DbLabel
	 * property QIntegerTextBox $BudgetMinControl
	 * property-read QLabel $BudgetMinLabel
	 * property QIntegerTextBox $BudgetMaxControl
	 * property-read QLabel $BudgetMaxLabel
	 * property QTextBox $FeaturedControl
	 * property-read QLabel $FeaturedLabel
	 * property QTextBox $HideBidControl
	 * property-read QLabel $HideBidLabel
	 * property QTextBox $HideSearchControl
	 * property-read QLabel $HideSearchLabel
	 * property QTextBox $GoldOnlyControl
	 * property-read QLabel $GoldOnlyLabel
	 * property QTextBox $EnableControl
	 * property-read QLabel $EnableLabel
	 * property QTextBox $SendmailControl
	 * property-read QLabel $SendmailLabel
	 * property QIntegerTextBox $TotalBidControl
	 * property-read QLabel $TotalBidLabel
	 * property QDateTimePicker $TimeLimitDateControl
	 * property-read QLabel $TimeLimitDateLabel
	 * property QDateTimePicker $PostDateControl
	 * property-read QLabel $PostDateLabel
	 * property QDateTimePicker $CancelDateControl
	 * property-read QLabel $CancelDateLabel
	 * property QDateTimePicker $CloseDateControl
	 * property-read QLabel $CloseDateLabel
	 * property QDateTimePicker $EndDateControl
	 * property-read QLabel $EndDateLabel
	 * property QIntegerTextBox $StatusControl
	 * property-read QLabel $StatusLabel
	 * property QListBox $WonUserIdControl
	 * property-read QLabel $WonUserIdLabel
	 * property QFloatTextBox $AverageBidControl
	 * property-read QLabel $AverageBidLabel
	 * property QDateTimePicker $WonDateControl
	 * property-read QLabel $WonDateLabel
	 * property QDateTimePicker $StartDateControl
	 * property-read QLabel $StartDateLabel
	 * property QDateTimePicker $LastBidDateControl
	 * property-read QLabel $LastBidDateLabel
	 * property QIntegerTextBox $ProgressNumberControl
	 * property-read QLabel $ProgressNumberLabel
	 * property QIntegerTextBox $BudgetExactControl
	 * property-read QLabel $BudgetExactLabel
	 * property QListBox $UserIdControl
	 * property-read QLabel $UserIdLabel
	 * property QDateTimePicker $DeadlineControl
	 * property-read QLabel $DeadlineLabel
	 * property QIntegerTextBox $MainCategoryIdControl
	 * property-read QLabel $MainCategoryIdLabel
	 * property QIntegerTextBox $BudgetTypeControl
	 * property-read QLabel $BudgetTypeLabel
	 * property QTextBox $BuyerUsernameControl
	 * property-read QLabel $BuyerUsernameLabel
	 * property QTextBox $ProviderUsernameControl
	 * property-read QLabel $ProviderUsernameLabel
	 * property QIntegerTextBox $PageViewControl
	 * property-read QLabel $PageViewLabel
	 * property-read string $TitleVerb a verb indicating whether or not this is being edited or created
	 * property-read boolean $EditMode a boolean indicating whether or not this is being edited or created
	 */

	class TableProjectMetaControlGen extends QBaseClass {
		// General Variables
		protected $objTableProject;
		protected $objParentObject;
		protected $strTitleVerb;
		protected $blnEditMode;

		// Controls that allow the editing of TableProject's individual data fields
		protected $lblId;
		protected $txtCategoryId;
		protected $txtSubcategoryId;
		protected $txtTitle;
		protected $txtDescription;
		protected $txtOs;
		protected $txtDb;
		protected $txtBudgetMin;
		protected $txtBudgetMax;
		protected $txtFeatured;
		protected $txtHideBid;
		protected $txtHideSearch;
		protected $txtGoldOnly;
		protected $txtEnable;
		protected $txtSendmail;
		protected $txtTotalBid;
		protected $calTimeLimitDate;
		protected $calPostDate;
		protected $calCancelDate;
		protected $calCloseDate;
		protected $calEndDate;
		protected $txtStatus;
		protected $lstWonUser;
		protected $txtAverageBid;
		protected $calWonDate;
		protected $calStartDate;
		protected $calLastBidDate;
		protected $txtProgressNumber;
		protected $txtBudgetExact;
		protected $lstUser;
		protected $calDeadline;
		protected $txtMainCategoryId;
		protected $txtBudgetType;
		protected $txtBuyerUsername;
		protected $txtProviderUsername;
		protected $txtPageView;

		// Controls that allow the viewing of TableProject's individual data fields
		protected $lblCategoryId;
		protected $lblSubcategoryId;
		protected $lblTitle;
		protected $lblDescription;
		protected $lblOs;
		protected $lblDb;
		protected $lblBudgetMin;
		protected $lblBudgetMax;
		protected $lblFeatured;
		protected $lblHideBid;
		protected $lblHideSearch;
		protected $lblGoldOnly;
		protected $lblEnable;
		protected $lblSendmail;
		protected $lblTotalBid;
		protected $lblTimeLimitDate;
		protected $lblPostDate;
		protected $lblCancelDate;
		protected $lblCloseDate;
		protected $lblEndDate;
		protected $lblStatus;
		protected $lblWonUserId;
		protected $lblAverageBid;
		protected $lblWonDate;
		protected $lblStartDate;
		protected $lblLastBidDate;
		protected $lblProgressNumber;
		protected $lblBudgetExact;
		protected $lblUserId;
		protected $lblDeadline;
		protected $lblMainCategoryId;
		protected $lblBudgetType;
		protected $lblBuyerUsername;
		protected $lblProviderUsername;
		protected $lblPageView;

		// QListBox Controls (if applicable) to edit Unique ReverseReferences and ManyToMany References

		// QLabel Controls (if applicable) to view Unique ReverseReferences and ManyToMany References


		/**
		 * Main constructor.  Constructor OR static create methods are designed to be called in either
		 * a parent QPanel or the main QForm when wanting to create a
		 * TableProjectMetaControl to edit a single TableProject object within the
		 * QPanel or QForm.
		 *
		 * This constructor takes in a single TableProject object, while any of the static
		 * create methods below can be used to construct based off of individual PK ID(s).
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableProjectMetaControl
		 * @param TableProject $objTableProject new or existing TableProject object
		 */
		 public function __construct($objParentObject, TableProject $objTableProject) {
			// Setup Parent Object (e.g. QForm or QPanel which will be using this TableProjectMetaControl)
			$this->objParentObject = $objParentObject;

			// Setup linked TableProject object
			$this->objTableProject = $objTableProject;

			// Figure out if we're Editing or Creating New
			if ($this->objTableProject->__Restored) {
				$this->strTitleVerb = QApplication::Translate('Edit');
				$this->blnEditMode = true;
			} else {
				$this->strTitleVerb = QApplication::Translate('Create');
				$this->blnEditMode = false;
			}
		 }

		/**
		 * Static Helper Method to Create using PK arguments
		 * You must pass in the PK arguments on an object to load, or leave it blank to create a new one.
		 * If you want to load via QueryString or PathInfo, use the CreateFromQueryString or CreateFromPathInfo
		 * static helper methods.  Finally, specify a CreateType to define whether or not we are only allowed to 
		 * edit, or if we are also allowed to create a new one, etc.
		 * 
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableProjectMetaControl
		 * @param integer $intId primary key value
		 * @param QMetaControlCreateType $intCreateType rules governing TableProject object creation - defaults to CreateOrEdit
 		 * @return TableProjectMetaControl
		 */
		public static function Create($objParentObject, $intId = null, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			// Attempt to Load from PK Arguments
			if (strlen($intId)) {
				$objTableProject = TableProject::Load($intId);

				// TableProject was found -- return it!
				if ($objTableProject)
					return new TableProjectMetaControl($objParentObject, $objTableProject);

				// If CreateOnRecordNotFound not specified, throw an exception
				else if ($intCreateType != QMetaControlCreateType::CreateOnRecordNotFound)
					throw new QCallerException('Could not find a TableProject object with PK arguments: ' . $intId);

			// If EditOnly is specified, throw an exception
			} else if ($intCreateType == QMetaControlCreateType::EditOnly)
				throw new QCallerException('No PK arguments specified');

			// If we are here, then we need to create a new record
			return new TableProjectMetaControl($objParentObject, new TableProject());
		}

		/**
		 * Static Helper Method to Create using PathInfo arguments
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableProjectMetaControl
		 * @param QMetaControlCreateType $intCreateType rules governing TableProject object creation - defaults to CreateOrEdit
		 * @return TableProjectMetaControl
		 */
		public static function CreateFromPathInfo($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			$intId = QApplication::PathInfo(0);
			return TableProjectMetaControl::Create($objParentObject, $intId, $intCreateType);
		}

		/**
		 * Static Helper Method to Create using QueryString arguments
		 *
		 * @param mixed $objParentObject QForm or QPanel which will be using this TableProjectMetaControl
		 * @param QMetaControlCreateType $intCreateType rules governing TableProject object creation - defaults to CreateOrEdit
		 * @return TableProjectMetaControl
		 */
		public static function CreateFromQueryString($objParentObject, $intCreateType = QMetaControlCreateType::CreateOrEdit) {
			$intId = QApplication::QueryString('intId');
			return TableProjectMetaControl::Create($objParentObject, $intId, $intCreateType);
		}



		///////////////////////////////////////////////
		// PUBLIC CREATE and REFRESH METHODS
		///////////////////////////////////////////////

		/**
		 * Create and setup QLabel lblId
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblId_Create($strControlId = null) {
			$this->lblId = new QLabel($this->objParentObject, $strControlId);
			$this->lblId->Name = QApplication::Translate('Id');
			if ($this->blnEditMode)
				$this->lblId->Text = $this->objTableProject->Id;
			else
				$this->lblId->Text = 'N/A';
			return $this->lblId;
		}

		/**
		 * Create and setup QIntegerTextBox txtCategoryId
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtCategoryId_Create($strControlId = null) {
			$this->txtCategoryId = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtCategoryId->Name = QApplication::Translate('Category Id');
			$this->txtCategoryId->Text = $this->objTableProject->CategoryId;
			$this->txtCategoryId->Required = true;
			return $this->txtCategoryId;
		}

		/**
		 * Create and setup QLabel lblCategoryId
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblCategoryId_Create($strControlId = null, $strFormat = null) {
			$this->lblCategoryId = new QLabel($this->objParentObject, $strControlId);
			$this->lblCategoryId->Name = QApplication::Translate('Category Id');
			$this->lblCategoryId->Text = $this->objTableProject->CategoryId;
			$this->lblCategoryId->Required = true;
			$this->lblCategoryId->Format = $strFormat;
			return $this->lblCategoryId;
		}

		/**
		 * Create and setup QIntegerTextBox txtSubcategoryId
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtSubcategoryId_Create($strControlId = null) {
			$this->txtSubcategoryId = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtSubcategoryId->Name = QApplication::Translate('Subcategory Id');
			$this->txtSubcategoryId->Text = $this->objTableProject->SubcategoryId;
			return $this->txtSubcategoryId;
		}

		/**
		 * Create and setup QLabel lblSubcategoryId
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblSubcategoryId_Create($strControlId = null, $strFormat = null) {
			$this->lblSubcategoryId = new QLabel($this->objParentObject, $strControlId);
			$this->lblSubcategoryId->Name = QApplication::Translate('Subcategory Id');
			$this->lblSubcategoryId->Text = $this->objTableProject->SubcategoryId;
			$this->lblSubcategoryId->Format = $strFormat;
			return $this->lblSubcategoryId;
		}

		/**
		 * Create and setup QTextBox txtTitle
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtTitle_Create($strControlId = null) {
			$this->txtTitle = new QTextBox($this->objParentObject, $strControlId);
			$this->txtTitle->Name = QApplication::Translate('Title');
			$this->txtTitle->Text = $this->objTableProject->Title;
			$this->txtTitle->Required = true;
			$this->txtTitle->MaxLength = TableProject::TitleMaxLength;
			return $this->txtTitle;
		}

		/**
		 * Create and setup QLabel lblTitle
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblTitle_Create($strControlId = null) {
			$this->lblTitle = new QLabel($this->objParentObject, $strControlId);
			$this->lblTitle->Name = QApplication::Translate('Title');
			$this->lblTitle->Text = $this->objTableProject->Title;
			$this->lblTitle->Required = true;
			return $this->lblTitle;
		}

		/**
		 * Create and setup QTextBox txtDescription
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtDescription_Create($strControlId = null) {
			$this->txtDescription = new QTextBox($this->objParentObject, $strControlId);
			$this->txtDescription->Name = QApplication::Translate('Description');
			$this->txtDescription->Text = $this->objTableProject->Description;
			$this->txtDescription->TextMode = QTextMode::MultiLine;
			return $this->txtDescription;
		}

		/**
		 * Create and setup QLabel lblDescription
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblDescription_Create($strControlId = null) {
			$this->lblDescription = new QLabel($this->objParentObject, $strControlId);
			$this->lblDescription->Name = QApplication::Translate('Description');
			$this->lblDescription->Text = $this->objTableProject->Description;
			return $this->lblDescription;
		}

		/**
		 * Create and setup QTextBox txtOs
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtOs_Create($strControlId = null) {
			$this->txtOs = new QTextBox($this->objParentObject, $strControlId);
			$this->txtOs->Name = QApplication::Translate('Os');
			$this->txtOs->Text = $this->objTableProject->Os;
			$this->txtOs->MaxLength = TableProject::OsMaxLength;
			return $this->txtOs;
		}

		/**
		 * Create and setup QLabel lblOs
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblOs_Create($strControlId = null) {
			$this->lblOs = new QLabel($this->objParentObject, $strControlId);
			$this->lblOs->Name = QApplication::Translate('Os');
			$this->lblOs->Text = $this->objTableProject->Os;
			return $this->lblOs;
		}

		/**
		 * Create and setup QTextBox txtDb
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtDb_Create($strControlId = null) {
			$this->txtDb = new QTextBox($this->objParentObject, $strControlId);
			$this->txtDb->Name = QApplication::Translate('Db');
			$this->txtDb->Text = $this->objTableProject->Db;
			$this->txtDb->MaxLength = TableProject::DbMaxLength;
			return $this->txtDb;
		}

		/**
		 * Create and setup QLabel lblDb
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblDb_Create($strControlId = null) {
			$this->lblDb = new QLabel($this->objParentObject, $strControlId);
			$this->lblDb->Name = QApplication::Translate('Db');
			$this->lblDb->Text = $this->objTableProject->Db;
			return $this->lblDb;
		}

		/**
		 * Create and setup QIntegerTextBox txtBudgetMin
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtBudgetMin_Create($strControlId = null) {
			$this->txtBudgetMin = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtBudgetMin->Name = QApplication::Translate('Budget Min');
			$this->txtBudgetMin->Text = $this->objTableProject->BudgetMin;
			return $this->txtBudgetMin;
		}

		/**
		 * Create and setup QLabel lblBudgetMin
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblBudgetMin_Create($strControlId = null, $strFormat = null) {
			$this->lblBudgetMin = new QLabel($this->objParentObject, $strControlId);
			$this->lblBudgetMin->Name = QApplication::Translate('Budget Min');
			$this->lblBudgetMin->Text = $this->objTableProject->BudgetMin;
			$this->lblBudgetMin->Format = $strFormat;
			return $this->lblBudgetMin;
		}

		/**
		 * Create and setup QIntegerTextBox txtBudgetMax
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtBudgetMax_Create($strControlId = null) {
			$this->txtBudgetMax = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtBudgetMax->Name = QApplication::Translate('Budget Max');
			$this->txtBudgetMax->Text = $this->objTableProject->BudgetMax;
			return $this->txtBudgetMax;
		}

		/**
		 * Create and setup QLabel lblBudgetMax
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblBudgetMax_Create($strControlId = null, $strFormat = null) {
			$this->lblBudgetMax = new QLabel($this->objParentObject, $strControlId);
			$this->lblBudgetMax->Name = QApplication::Translate('Budget Max');
			$this->lblBudgetMax->Text = $this->objTableProject->BudgetMax;
			$this->lblBudgetMax->Format = $strFormat;
			return $this->lblBudgetMax;
		}

		/**
		 * Create and setup QTextBox txtFeatured
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtFeatured_Create($strControlId = null) {
			$this->txtFeatured = new QTextBox($this->objParentObject, $strControlId);
			$this->txtFeatured->Name = QApplication::Translate('Featured');
			$this->txtFeatured->Text = $this->objTableProject->Featured;
			$this->txtFeatured->Required = true;
			$this->txtFeatured->MaxLength = TableProject::FeaturedMaxLength;
			return $this->txtFeatured;
		}

		/**
		 * Create and setup QLabel lblFeatured
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblFeatured_Create($strControlId = null) {
			$this->lblFeatured = new QLabel($this->objParentObject, $strControlId);
			$this->lblFeatured->Name = QApplication::Translate('Featured');
			$this->lblFeatured->Text = $this->objTableProject->Featured;
			$this->lblFeatured->Required = true;
			return $this->lblFeatured;
		}

		/**
		 * Create and setup QTextBox txtHideBid
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtHideBid_Create($strControlId = null) {
			$this->txtHideBid = new QTextBox($this->objParentObject, $strControlId);
			$this->txtHideBid->Name = QApplication::Translate('Hide Bid');
			$this->txtHideBid->Text = $this->objTableProject->HideBid;
			$this->txtHideBid->Required = true;
			$this->txtHideBid->MaxLength = TableProject::HideBidMaxLength;
			return $this->txtHideBid;
		}

		/**
		 * Create and setup QLabel lblHideBid
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblHideBid_Create($strControlId = null) {
			$this->lblHideBid = new QLabel($this->objParentObject, $strControlId);
			$this->lblHideBid->Name = QApplication::Translate('Hide Bid');
			$this->lblHideBid->Text = $this->objTableProject->HideBid;
			$this->lblHideBid->Required = true;
			return $this->lblHideBid;
		}

		/**
		 * Create and setup QTextBox txtHideSearch
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtHideSearch_Create($strControlId = null) {
			$this->txtHideSearch = new QTextBox($this->objParentObject, $strControlId);
			$this->txtHideSearch->Name = QApplication::Translate('Hide Search');
			$this->txtHideSearch->Text = $this->objTableProject->HideSearch;
			$this->txtHideSearch->Required = true;
			$this->txtHideSearch->MaxLength = TableProject::HideSearchMaxLength;
			return $this->txtHideSearch;
		}

		/**
		 * Create and setup QLabel lblHideSearch
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblHideSearch_Create($strControlId = null) {
			$this->lblHideSearch = new QLabel($this->objParentObject, $strControlId);
			$this->lblHideSearch->Name = QApplication::Translate('Hide Search');
			$this->lblHideSearch->Text = $this->objTableProject->HideSearch;
			$this->lblHideSearch->Required = true;
			return $this->lblHideSearch;
		}

		/**
		 * Create and setup QTextBox txtGoldOnly
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtGoldOnly_Create($strControlId = null) {
			$this->txtGoldOnly = new QTextBox($this->objParentObject, $strControlId);
			$this->txtGoldOnly->Name = QApplication::Translate('Gold Only');
			$this->txtGoldOnly->Text = $this->objTableProject->GoldOnly;
			$this->txtGoldOnly->Required = true;
			$this->txtGoldOnly->MaxLength = TableProject::GoldOnlyMaxLength;
			return $this->txtGoldOnly;
		}

		/**
		 * Create and setup QLabel lblGoldOnly
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblGoldOnly_Create($strControlId = null) {
			$this->lblGoldOnly = new QLabel($this->objParentObject, $strControlId);
			$this->lblGoldOnly->Name = QApplication::Translate('Gold Only');
			$this->lblGoldOnly->Text = $this->objTableProject->GoldOnly;
			$this->lblGoldOnly->Required = true;
			return $this->lblGoldOnly;
		}

		/**
		 * Create and setup QTextBox txtEnable
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtEnable_Create($strControlId = null) {
			$this->txtEnable = new QTextBox($this->objParentObject, $strControlId);
			$this->txtEnable->Name = QApplication::Translate('Enable');
			$this->txtEnable->Text = $this->objTableProject->Enable;
			$this->txtEnable->Required = true;
			$this->txtEnable->MaxLength = TableProject::EnableMaxLength;
			return $this->txtEnable;
		}

		/**
		 * Create and setup QLabel lblEnable
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblEnable_Create($strControlId = null) {
			$this->lblEnable = new QLabel($this->objParentObject, $strControlId);
			$this->lblEnable->Name = QApplication::Translate('Enable');
			$this->lblEnable->Text = $this->objTableProject->Enable;
			$this->lblEnable->Required = true;
			return $this->lblEnable;
		}

		/**
		 * Create and setup QTextBox txtSendmail
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtSendmail_Create($strControlId = null) {
			$this->txtSendmail = new QTextBox($this->objParentObject, $strControlId);
			$this->txtSendmail->Name = QApplication::Translate('Sendmail');
			$this->txtSendmail->Text = $this->objTableProject->Sendmail;
			$this->txtSendmail->Required = true;
			$this->txtSendmail->MaxLength = TableProject::SendmailMaxLength;
			return $this->txtSendmail;
		}

		/**
		 * Create and setup QLabel lblSendmail
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblSendmail_Create($strControlId = null) {
			$this->lblSendmail = new QLabel($this->objParentObject, $strControlId);
			$this->lblSendmail->Name = QApplication::Translate('Sendmail');
			$this->lblSendmail->Text = $this->objTableProject->Sendmail;
			$this->lblSendmail->Required = true;
			return $this->lblSendmail;
		}

		/**
		 * Create and setup QIntegerTextBox txtTotalBid
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtTotalBid_Create($strControlId = null) {
			$this->txtTotalBid = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtTotalBid->Name = QApplication::Translate('Total Bid');
			$this->txtTotalBid->Text = $this->objTableProject->TotalBid;
			$this->txtTotalBid->Required = true;
			return $this->txtTotalBid;
		}

		/**
		 * Create and setup QLabel lblTotalBid
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblTotalBid_Create($strControlId = null, $strFormat = null) {
			$this->lblTotalBid = new QLabel($this->objParentObject, $strControlId);
			$this->lblTotalBid->Name = QApplication::Translate('Total Bid');
			$this->lblTotalBid->Text = $this->objTableProject->TotalBid;
			$this->lblTotalBid->Required = true;
			$this->lblTotalBid->Format = $strFormat;
			return $this->lblTotalBid;
		}

		/**
		 * Create and setup QDateTimePicker calTimeLimitDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calTimeLimitDate_Create($strControlId = null) {
			$this->calTimeLimitDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calTimeLimitDate->Name = QApplication::Translate('Time Limit Date');
			$this->calTimeLimitDate->DateTime = $this->objTableProject->TimeLimitDate;
			$this->calTimeLimitDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calTimeLimitDate;
		}

		/**
		 * Create and setup QLabel lblTimeLimitDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblTimeLimitDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblTimeLimitDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblTimeLimitDate->Name = QApplication::Translate('Time Limit Date');
			$this->strTimeLimitDateDateTimeFormat = $strDateTimeFormat;
			$this->lblTimeLimitDate->Text = sprintf($this->objTableProject->TimeLimitDate) ? $this->objTableProject->TimeLimitDate->__toString($this->strTimeLimitDateDateTimeFormat) : null;
			return $this->lblTimeLimitDate;
		}

		protected $strTimeLimitDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calPostDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calPostDate_Create($strControlId = null) {
			$this->calPostDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calPostDate->Name = QApplication::Translate('Post Date');
			$this->calPostDate->DateTime = $this->objTableProject->PostDate;
			$this->calPostDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calPostDate;
		}

		/**
		 * Create and setup QLabel lblPostDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblPostDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblPostDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblPostDate->Name = QApplication::Translate('Post Date');
			$this->strPostDateDateTimeFormat = $strDateTimeFormat;
			$this->lblPostDate->Text = sprintf($this->objTableProject->PostDate) ? $this->objTableProject->PostDate->__toString($this->strPostDateDateTimeFormat) : null;
			return $this->lblPostDate;
		}

		protected $strPostDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calCancelDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calCancelDate_Create($strControlId = null) {
			$this->calCancelDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calCancelDate->Name = QApplication::Translate('Cancel Date');
			$this->calCancelDate->DateTime = $this->objTableProject->CancelDate;
			$this->calCancelDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calCancelDate;
		}

		/**
		 * Create and setup QLabel lblCancelDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblCancelDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblCancelDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblCancelDate->Name = QApplication::Translate('Cancel Date');
			$this->strCancelDateDateTimeFormat = $strDateTimeFormat;
			$this->lblCancelDate->Text = sprintf($this->objTableProject->CancelDate) ? $this->objTableProject->CancelDate->__toString($this->strCancelDateDateTimeFormat) : null;
			return $this->lblCancelDate;
		}

		protected $strCancelDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calCloseDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calCloseDate_Create($strControlId = null) {
			$this->calCloseDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calCloseDate->Name = QApplication::Translate('Close Date');
			$this->calCloseDate->DateTime = $this->objTableProject->CloseDate;
			$this->calCloseDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calCloseDate;
		}

		/**
		 * Create and setup QLabel lblCloseDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblCloseDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblCloseDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblCloseDate->Name = QApplication::Translate('Close Date');
			$this->strCloseDateDateTimeFormat = $strDateTimeFormat;
			$this->lblCloseDate->Text = sprintf($this->objTableProject->CloseDate) ? $this->objTableProject->CloseDate->__toString($this->strCloseDateDateTimeFormat) : null;
			return $this->lblCloseDate;
		}

		protected $strCloseDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calEndDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calEndDate_Create($strControlId = null) {
			$this->calEndDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calEndDate->Name = QApplication::Translate('End Date');
			$this->calEndDate->DateTime = $this->objTableProject->EndDate;
			$this->calEndDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calEndDate;
		}

		/**
		 * Create and setup QLabel lblEndDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblEndDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblEndDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblEndDate->Name = QApplication::Translate('End Date');
			$this->strEndDateDateTimeFormat = $strDateTimeFormat;
			$this->lblEndDate->Text = sprintf($this->objTableProject->EndDate) ? $this->objTableProject->EndDate->__toString($this->strEndDateDateTimeFormat) : null;
			return $this->lblEndDate;
		}

		protected $strEndDateDateTimeFormat;


		/**
		 * Create and setup QIntegerTextBox txtStatus
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtStatus_Create($strControlId = null) {
			$this->txtStatus = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtStatus->Name = QApplication::Translate('Status');
			$this->txtStatus->Text = $this->objTableProject->Status;
			$this->txtStatus->Required = true;
			return $this->txtStatus;
		}

		/**
		 * Create and setup QLabel lblStatus
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblStatus_Create($strControlId = null, $strFormat = null) {
			$this->lblStatus = new QLabel($this->objParentObject, $strControlId);
			$this->lblStatus->Name = QApplication::Translate('Status');
			$this->lblStatus->Text = $this->objTableProject->Status;
			$this->lblStatus->Required = true;
			$this->lblStatus->Format = $strFormat;
			return $this->lblStatus;
		}

		/**
		 * Create and setup QListBox lstWonUser
		 * @param string $strControlId optional ControlId to use
		 * @return QListBox
		 */
		public function lstWonUser_Create($strControlId = null) {
			$this->lstWonUser = new QListBox($this->objParentObject, $strControlId);
			$this->lstWonUser->Name = QApplication::Translate('Won User');
			$this->lstWonUser->AddItem(QApplication::Translate('- Select One -'), null);
			$objWonUserArray = TableUserProject::LoadAll();
			if ($objWonUserArray) foreach ($objWonUserArray as $objWonUser) {
				$objListItem = new QListItem($objWonUser->__toString(), $objWonUser->Id);
				if (($this->objTableProject->WonUser) && ($this->objTableProject->WonUser->Id == $objWonUser->Id))
					$objListItem->Selected = true;
				$this->lstWonUser->AddItem($objListItem);
			}
			return $this->lstWonUser;
		}

		/**
		 * Create and setup QLabel lblWonUserId
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblWonUserId_Create($strControlId = null) {
			$this->lblWonUserId = new QLabel($this->objParentObject, $strControlId);
			$this->lblWonUserId->Name = QApplication::Translate('Won User');
			$this->lblWonUserId->Text = ($this->objTableProject->WonUser) ? $this->objTableProject->WonUser->__toString() : null;
			return $this->lblWonUserId;
		}

		/**
		 * Create and setup QFloatTextBox txtAverageBid
		 * @param string $strControlId optional ControlId to use
		 * @return QFloatTextBox
		 */
		public function txtAverageBid_Create($strControlId = null) {
			$this->txtAverageBid = new QFloatTextBox($this->objParentObject, $strControlId);
			$this->txtAverageBid->Name = QApplication::Translate('Average Bid');
			$this->txtAverageBid->Text = $this->objTableProject->AverageBid;
			return $this->txtAverageBid;
		}

		/**
		 * Create and setup QLabel lblAverageBid
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblAverageBid_Create($strControlId = null, $strFormat = null) {
			$this->lblAverageBid = new QLabel($this->objParentObject, $strControlId);
			$this->lblAverageBid->Name = QApplication::Translate('Average Bid');
			$this->lblAverageBid->Text = $this->objTableProject->AverageBid;
			$this->lblAverageBid->Format = $strFormat;
			return $this->lblAverageBid;
		}

		/**
		 * Create and setup QDateTimePicker calWonDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calWonDate_Create($strControlId = null) {
			$this->calWonDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calWonDate->Name = QApplication::Translate('Won Date');
			$this->calWonDate->DateTime = $this->objTableProject->WonDate;
			$this->calWonDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calWonDate;
		}

		/**
		 * Create and setup QLabel lblWonDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblWonDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblWonDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblWonDate->Name = QApplication::Translate('Won Date');
			$this->strWonDateDateTimeFormat = $strDateTimeFormat;
			$this->lblWonDate->Text = sprintf($this->objTableProject->WonDate) ? $this->objTableProject->WonDate->__toString($this->strWonDateDateTimeFormat) : null;
			return $this->lblWonDate;
		}

		protected $strWonDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calStartDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calStartDate_Create($strControlId = null) {
			$this->calStartDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calStartDate->Name = QApplication::Translate('Start Date');
			$this->calStartDate->DateTime = $this->objTableProject->StartDate;
			$this->calStartDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calStartDate;
		}

		/**
		 * Create and setup QLabel lblStartDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblStartDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblStartDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblStartDate->Name = QApplication::Translate('Start Date');
			$this->strStartDateDateTimeFormat = $strDateTimeFormat;
			$this->lblStartDate->Text = sprintf($this->objTableProject->StartDate) ? $this->objTableProject->StartDate->__toString($this->strStartDateDateTimeFormat) : null;
			return $this->lblStartDate;
		}

		protected $strStartDateDateTimeFormat;


		/**
		 * Create and setup QDateTimePicker calLastBidDate
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calLastBidDate_Create($strControlId = null) {
			$this->calLastBidDate = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calLastBidDate->Name = QApplication::Translate('Last Bid Date');
			$this->calLastBidDate->DateTime = $this->objTableProject->LastBidDate;
			$this->calLastBidDate->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calLastBidDate;
		}

		/**
		 * Create and setup QLabel lblLastBidDate
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblLastBidDate_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblLastBidDate = new QLabel($this->objParentObject, $strControlId);
			$this->lblLastBidDate->Name = QApplication::Translate('Last Bid Date');
			$this->strLastBidDateDateTimeFormat = $strDateTimeFormat;
			$this->lblLastBidDate->Text = sprintf($this->objTableProject->LastBidDate) ? $this->objTableProject->LastBidDate->__toString($this->strLastBidDateDateTimeFormat) : null;
			return $this->lblLastBidDate;
		}

		protected $strLastBidDateDateTimeFormat;


		/**
		 * Create and setup QIntegerTextBox txtProgressNumber
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtProgressNumber_Create($strControlId = null) {
			$this->txtProgressNumber = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtProgressNumber->Name = QApplication::Translate('Progress Number');
			$this->txtProgressNumber->Text = $this->objTableProject->ProgressNumber;
			return $this->txtProgressNumber;
		}

		/**
		 * Create and setup QLabel lblProgressNumber
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblProgressNumber_Create($strControlId = null, $strFormat = null) {
			$this->lblProgressNumber = new QLabel($this->objParentObject, $strControlId);
			$this->lblProgressNumber->Name = QApplication::Translate('Progress Number');
			$this->lblProgressNumber->Text = $this->objTableProject->ProgressNumber;
			$this->lblProgressNumber->Format = $strFormat;
			return $this->lblProgressNumber;
		}

		/**
		 * Create and setup QIntegerTextBox txtBudgetExact
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtBudgetExact_Create($strControlId = null) {
			$this->txtBudgetExact = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtBudgetExact->Name = QApplication::Translate('Budget Exact');
			$this->txtBudgetExact->Text = $this->objTableProject->BudgetExact;
			return $this->txtBudgetExact;
		}

		/**
		 * Create and setup QLabel lblBudgetExact
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblBudgetExact_Create($strControlId = null, $strFormat = null) {
			$this->lblBudgetExact = new QLabel($this->objParentObject, $strControlId);
			$this->lblBudgetExact->Name = QApplication::Translate('Budget Exact');
			$this->lblBudgetExact->Text = $this->objTableProject->BudgetExact;
			$this->lblBudgetExact->Format = $strFormat;
			return $this->lblBudgetExact;
		}

		/**
		 * Create and setup QListBox lstUser
		 * @param string $strControlId optional ControlId to use
		 * @return QListBox
		 */
		public function lstUser_Create($strControlId = null) {
			$this->lstUser = new QListBox($this->objParentObject, $strControlId);
			$this->lstUser->Name = QApplication::Translate('User');
			$this->lstUser->Required = true;
			if (!$this->blnEditMode)
				$this->lstUser->AddItem(QApplication::Translate('- Select One -'), null);
			$objUserArray = TableUserProject::LoadAll();
			if ($objUserArray) foreach ($objUserArray as $objUser) {
				$objListItem = new QListItem($objUser->__toString(), $objUser->Id);
				if (($this->objTableProject->User) && ($this->objTableProject->User->Id == $objUser->Id))
					$objListItem->Selected = true;
				$this->lstUser->AddItem($objListItem);
			}
			return $this->lstUser;
		}

		/**
		 * Create and setup QLabel lblUserId
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblUserId_Create($strControlId = null) {
			$this->lblUserId = new QLabel($this->objParentObject, $strControlId);
			$this->lblUserId->Name = QApplication::Translate('User');
			$this->lblUserId->Text = ($this->objTableProject->User) ? $this->objTableProject->User->__toString() : null;
			$this->lblUserId->Required = true;
			return $this->lblUserId;
		}

		/**
		 * Create and setup QDateTimePicker calDeadline
		 * @param string $strControlId optional ControlId to use
		 * @return QDateTimePicker
		 */
		public function calDeadline_Create($strControlId = null) {
			$this->calDeadline = new QDateTimePicker($this->objParentObject, $strControlId);
			$this->calDeadline->Name = QApplication::Translate('Deadline');
			$this->calDeadline->DateTime = $this->objTableProject->Deadline;
			$this->calDeadline->DateTimePickerType = QDateTimePickerType::DateTime;
			return $this->calDeadline;
		}

		/**
		 * Create and setup QLabel lblDeadline
		 * @param string $strControlId optional ControlId to use
		 * @param string $strDateTimeFormat optional DateTimeFormat to use
		 * @return QLabel
		 */
		public function lblDeadline_Create($strControlId = null, $strDateTimeFormat = null) {
			$this->lblDeadline = new QLabel($this->objParentObject, $strControlId);
			$this->lblDeadline->Name = QApplication::Translate('Deadline');
			$this->strDeadlineDateTimeFormat = $strDateTimeFormat;
			$this->lblDeadline->Text = sprintf($this->objTableProject->Deadline) ? $this->objTableProject->Deadline->__toString($this->strDeadlineDateTimeFormat) : null;
			return $this->lblDeadline;
		}

		protected $strDeadlineDateTimeFormat;


		/**
		 * Create and setup QIntegerTextBox txtMainCategoryId
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtMainCategoryId_Create($strControlId = null) {
			$this->txtMainCategoryId = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtMainCategoryId->Name = QApplication::Translate('Main Category Id');
			$this->txtMainCategoryId->Text = $this->objTableProject->MainCategoryId;
			return $this->txtMainCategoryId;
		}

		/**
		 * Create and setup QLabel lblMainCategoryId
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblMainCategoryId_Create($strControlId = null, $strFormat = null) {
			$this->lblMainCategoryId = new QLabel($this->objParentObject, $strControlId);
			$this->lblMainCategoryId->Name = QApplication::Translate('Main Category Id');
			$this->lblMainCategoryId->Text = $this->objTableProject->MainCategoryId;
			$this->lblMainCategoryId->Format = $strFormat;
			return $this->lblMainCategoryId;
		}

		/**
		 * Create and setup QIntegerTextBox txtBudgetType
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtBudgetType_Create($strControlId = null) {
			$this->txtBudgetType = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtBudgetType->Name = QApplication::Translate('Budget Type');
			$this->txtBudgetType->Text = $this->objTableProject->BudgetType;
			$this->txtBudgetType->Required = true;
			return $this->txtBudgetType;
		}

		/**
		 * Create and setup QLabel lblBudgetType
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblBudgetType_Create($strControlId = null, $strFormat = null) {
			$this->lblBudgetType = new QLabel($this->objParentObject, $strControlId);
			$this->lblBudgetType->Name = QApplication::Translate('Budget Type');
			$this->lblBudgetType->Text = $this->objTableProject->BudgetType;
			$this->lblBudgetType->Required = true;
			$this->lblBudgetType->Format = $strFormat;
			return $this->lblBudgetType;
		}

		/**
		 * Create and setup QTextBox txtBuyerUsername
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtBuyerUsername_Create($strControlId = null) {
			$this->txtBuyerUsername = new QTextBox($this->objParentObject, $strControlId);
			$this->txtBuyerUsername->Name = QApplication::Translate('Buyer Username');
			$this->txtBuyerUsername->Text = $this->objTableProject->BuyerUsername;
			$this->txtBuyerUsername->MaxLength = TableProject::BuyerUsernameMaxLength;
			return $this->txtBuyerUsername;
		}

		/**
		 * Create and setup QLabel lblBuyerUsername
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblBuyerUsername_Create($strControlId = null) {
			$this->lblBuyerUsername = new QLabel($this->objParentObject, $strControlId);
			$this->lblBuyerUsername->Name = QApplication::Translate('Buyer Username');
			$this->lblBuyerUsername->Text = $this->objTableProject->BuyerUsername;
			return $this->lblBuyerUsername;
		}

		/**
		 * Create and setup QTextBox txtProviderUsername
		 * @param string $strControlId optional ControlId to use
		 * @return QTextBox
		 */
		public function txtProviderUsername_Create($strControlId = null) {
			$this->txtProviderUsername = new QTextBox($this->objParentObject, $strControlId);
			$this->txtProviderUsername->Name = QApplication::Translate('Provider Username');
			$this->txtProviderUsername->Text = $this->objTableProject->ProviderUsername;
			$this->txtProviderUsername->MaxLength = TableProject::ProviderUsernameMaxLength;
			return $this->txtProviderUsername;
		}

		/**
		 * Create and setup QLabel lblProviderUsername
		 * @param string $strControlId optional ControlId to use
		 * @return QLabel
		 */
		public function lblProviderUsername_Create($strControlId = null) {
			$this->lblProviderUsername = new QLabel($this->objParentObject, $strControlId);
			$this->lblProviderUsername->Name = QApplication::Translate('Provider Username');
			$this->lblProviderUsername->Text = $this->objTableProject->ProviderUsername;
			return $this->lblProviderUsername;
		}

		/**
		 * Create and setup QIntegerTextBox txtPageView
		 * @param string $strControlId optional ControlId to use
		 * @return QIntegerTextBox
		 */
		public function txtPageView_Create($strControlId = null) {
			$this->txtPageView = new QIntegerTextBox($this->objParentObject, $strControlId);
			$this->txtPageView->Name = QApplication::Translate('Page View');
			$this->txtPageView->Text = $this->objTableProject->PageView;
			return $this->txtPageView;
		}

		/**
		 * Create and setup QLabel lblPageView
		 * @param string $strControlId optional ControlId to use
		 * @param string $strFormat optional sprintf format to use
		 * @return QLabel
		 */
		public function lblPageView_Create($strControlId = null, $strFormat = null) {
			$this->lblPageView = new QLabel($this->objParentObject, $strControlId);
			$this->lblPageView->Name = QApplication::Translate('Page View');
			$this->lblPageView->Text = $this->objTableProject->PageView;
			$this->lblPageView->Format = $strFormat;
			return $this->lblPageView;
		}



		/**
		 * Refresh this MetaControl with Data from the local TableProject object.
		 * @param boolean $blnReload reload TableProject from the database
		 * @return void
		 */
		public function Refresh($blnReload = false) {
			if ($blnReload)
				$this->objTableProject->Reload();

			if ($this->lblId) if ($this->blnEditMode) $this->lblId->Text = $this->objTableProject->Id;

			if ($this->txtCategoryId) $this->txtCategoryId->Text = $this->objTableProject->CategoryId;
			if ($this->lblCategoryId) $this->lblCategoryId->Text = $this->objTableProject->CategoryId;

			if ($this->txtSubcategoryId) $this->txtSubcategoryId->Text = $this->objTableProject->SubcategoryId;
			if ($this->lblSubcategoryId) $this->lblSubcategoryId->Text = $this->objTableProject->SubcategoryId;

			if ($this->txtTitle) $this->txtTitle->Text = $this->objTableProject->Title;
			if ($this->lblTitle) $this->lblTitle->Text = $this->objTableProject->Title;

			if ($this->txtDescription) $this->txtDescription->Text = $this->objTableProject->Description;
			if ($this->lblDescription) $this->lblDescription->Text = $this->objTableProject->Description;

			if ($this->txtOs) $this->txtOs->Text = $this->objTableProject->Os;
			if ($this->lblOs) $this->lblOs->Text = $this->objTableProject->Os;

			if ($this->txtDb) $this->txtDb->Text = $this->objTableProject->Db;
			if ($this->lblDb) $this->lblDb->Text = $this->objTableProject->Db;

			if ($this->txtBudgetMin) $this->txtBudgetMin->Text = $this->objTableProject->BudgetMin;
			if ($this->lblBudgetMin) $this->lblBudgetMin->Text = $this->objTableProject->BudgetMin;

			if ($this->txtBudgetMax) $this->txtBudgetMax->Text = $this->objTableProject->BudgetMax;
			if ($this->lblBudgetMax) $this->lblBudgetMax->Text = $this->objTableProject->BudgetMax;

			if ($this->txtFeatured) $this->txtFeatured->Text = $this->objTableProject->Featured;
			if ($this->lblFeatured) $this->lblFeatured->Text = $this->objTableProject->Featured;

			if ($this->txtHideBid) $this->txtHideBid->Text = $this->objTableProject->HideBid;
			if ($this->lblHideBid) $this->lblHideBid->Text = $this->objTableProject->HideBid;

			if ($this->txtHideSearch) $this->txtHideSearch->Text = $this->objTableProject->HideSearch;
			if ($this->lblHideSearch) $this->lblHideSearch->Text = $this->objTableProject->HideSearch;

			if ($this->txtGoldOnly) $this->txtGoldOnly->Text = $this->objTableProject->GoldOnly;
			if ($this->lblGoldOnly) $this->lblGoldOnly->Text = $this->objTableProject->GoldOnly;

			if ($this->txtEnable) $this->txtEnable->Text = $this->objTableProject->Enable;
			if ($this->lblEnable) $this->lblEnable->Text = $this->objTableProject->Enable;

			if ($this->txtSendmail) $this->txtSendmail->Text = $this->objTableProject->Sendmail;
			if ($this->lblSendmail) $this->lblSendmail->Text = $this->objTableProject->Sendmail;

			if ($this->txtTotalBid) $this->txtTotalBid->Text = $this->objTableProject->TotalBid;
			if ($this->lblTotalBid) $this->lblTotalBid->Text = $this->objTableProject->TotalBid;

			if ($this->calTimeLimitDate) $this->calTimeLimitDate->DateTime = $this->objTableProject->TimeLimitDate;
			if ($this->lblTimeLimitDate) $this->lblTimeLimitDate->Text = sprintf($this->objTableProject->TimeLimitDate) ? $this->objTableProject->TimeLimitDate->__toString($this->strTimeLimitDateDateTimeFormat) : null;

			if ($this->calPostDate) $this->calPostDate->DateTime = $this->objTableProject->PostDate;
			if ($this->lblPostDate) $this->lblPostDate->Text = sprintf($this->objTableProject->PostDate) ? $this->objTableProject->PostDate->__toString($this->strPostDateDateTimeFormat) : null;

			if ($this->calCancelDate) $this->calCancelDate->DateTime = $this->objTableProject->CancelDate;
			if ($this->lblCancelDate) $this->lblCancelDate->Text = sprintf($this->objTableProject->CancelDate) ? $this->objTableProject->CancelDate->__toString($this->strCancelDateDateTimeFormat) : null;

			if ($this->calCloseDate) $this->calCloseDate->DateTime = $this->objTableProject->CloseDate;
			if ($this->lblCloseDate) $this->lblCloseDate->Text = sprintf($this->objTableProject->CloseDate) ? $this->objTableProject->CloseDate->__toString($this->strCloseDateDateTimeFormat) : null;

			if ($this->calEndDate) $this->calEndDate->DateTime = $this->objTableProject->EndDate;
			if ($this->lblEndDate) $this->lblEndDate->Text = sprintf($this->objTableProject->EndDate) ? $this->objTableProject->EndDate->__toString($this->strEndDateDateTimeFormat) : null;

			if ($this->txtStatus) $this->txtStatus->Text = $this->objTableProject->Status;
			if ($this->lblStatus) $this->lblStatus->Text = $this->objTableProject->Status;

			if ($this->lstWonUser) {
					$this->lstWonUser->RemoveAllItems();
				$this->lstWonUser->AddItem(QApplication::Translate('- Select One -'), null);
				$objWonUserArray = TableUserProject::LoadAll();
				if ($objWonUserArray) foreach ($objWonUserArray as $objWonUser) {
					$objListItem = new QListItem($objWonUser->__toString(), $objWonUser->Id);
					if (($this->objTableProject->WonUser) && ($this->objTableProject->WonUser->Id == $objWonUser->Id))
						$objListItem->Selected = true;
					$this->lstWonUser->AddItem($objListItem);
				}
			}
			if ($this->lblWonUserId) $this->lblWonUserId->Text = ($this->objTableProject->WonUser) ? $this->objTableProject->WonUser->__toString() : null;

			if ($this->txtAverageBid) $this->txtAverageBid->Text = $this->objTableProject->AverageBid;
			if ($this->lblAverageBid) $this->lblAverageBid->Text = $this->objTableProject->AverageBid;

			if ($this->calWonDate) $this->calWonDate->DateTime = $this->objTableProject->WonDate;
			if ($this->lblWonDate) $this->lblWonDate->Text = sprintf($this->objTableProject->WonDate) ? $this->objTableProject->WonDate->__toString($this->strWonDateDateTimeFormat) : null;

			if ($this->calStartDate) $this->calStartDate->DateTime = $this->objTableProject->StartDate;
			if ($this->lblStartDate) $this->lblStartDate->Text = sprintf($this->objTableProject->StartDate) ? $this->objTableProject->StartDate->__toString($this->strStartDateDateTimeFormat) : null;

			if ($this->calLastBidDate) $this->calLastBidDate->DateTime = $this->objTableProject->LastBidDate;
			if ($this->lblLastBidDate) $this->lblLastBidDate->Text = sprintf($this->objTableProject->LastBidDate) ? $this->objTableProject->LastBidDate->__toString($this->strLastBidDateDateTimeFormat) : null;

			if ($this->txtProgressNumber) $this->txtProgressNumber->Text = $this->objTableProject->ProgressNumber;
			if ($this->lblProgressNumber) $this->lblProgressNumber->Text = $this->objTableProject->ProgressNumber;

			if ($this->txtBudgetExact) $this->txtBudgetExact->Text = $this->objTableProject->BudgetExact;
			if ($this->lblBudgetExact) $this->lblBudgetExact->Text = $this->objTableProject->BudgetExact;

			if ($this->lstUser) {
					$this->lstUser->RemoveAllItems();
				if (!$this->blnEditMode)
					$this->lstUser->AddItem(QApplication::Translate('- Select One -'), null);
				$objUserArray = TableUserProject::LoadAll();
				if ($objUserArray) foreach ($objUserArray as $objUser) {
					$objListItem = new QListItem($objUser->__toString(), $objUser->Id);
					if (($this->objTableProject->User) && ($this->objTableProject->User->Id == $objUser->Id))
						$objListItem->Selected = true;
					$this->lstUser->AddItem($objListItem);
				}
			}
			if ($this->lblUserId) $this->lblUserId->Text = ($this->objTableProject->User) ? $this->objTableProject->User->__toString() : null;

			if ($this->calDeadline) $this->calDeadline->DateTime = $this->objTableProject->Deadline;
			if ($this->lblDeadline) $this->lblDeadline->Text = sprintf($this->objTableProject->Deadline) ? $this->objTableProject->Deadline->__toString($this->strDeadlineDateTimeFormat) : null;

			if ($this->txtMainCategoryId) $this->txtMainCategoryId->Text = $this->objTableProject->MainCategoryId;
			if ($this->lblMainCategoryId) $this->lblMainCategoryId->Text = $this->objTableProject->MainCategoryId;

			if ($this->txtBudgetType) $this->txtBudgetType->Text = $this->objTableProject->BudgetType;
			if ($this->lblBudgetType) $this->lblBudgetType->Text = $this->objTableProject->BudgetType;

			if ($this->txtBuyerUsername) $this->txtBuyerUsername->Text = $this->objTableProject->BuyerUsername;
			if ($this->lblBuyerUsername) $this->lblBuyerUsername->Text = $this->objTableProject->BuyerUsername;

			if ($this->txtProviderUsername) $this->txtProviderUsername->Text = $this->objTableProject->ProviderUsername;
			if ($this->lblProviderUsername) $this->lblProviderUsername->Text = $this->objTableProject->ProviderUsername;

			if ($this->txtPageView) $this->txtPageView->Text = $this->objTableProject->PageView;
			if ($this->lblPageView) $this->lblPageView->Text = $this->objTableProject->PageView;

		}



		///////////////////////////////////////////////
		// PROTECTED UPDATE METHODS for ManyToManyReferences (if any)
		///////////////////////////////////////////////





		///////////////////////////////////////////////
		// PUBLIC TABLEPROJECT OBJECT MANIPULATORS
		///////////////////////////////////////////////

		/**
		 * This will save this object's TableProject instance,
		 * updating only the fields which have had a control created for it.
		 */
		public function SaveTableProject() {
			try {
				// Update any fields for controls that have been created
				if ($this->txtCategoryId) $this->objTableProject->CategoryId = $this->txtCategoryId->Text;
				if ($this->txtSubcategoryId) $this->objTableProject->SubcategoryId = $this->txtSubcategoryId->Text;
				if ($this->txtTitle) $this->objTableProject->Title = $this->txtTitle->Text;
				if ($this->txtDescription) $this->objTableProject->Description = $this->txtDescription->Text;
				if ($this->txtOs) $this->objTableProject->Os = $this->txtOs->Text;
				if ($this->txtDb) $this->objTableProject->Db = $this->txtDb->Text;
				if ($this->txtBudgetMin) $this->objTableProject->BudgetMin = $this->txtBudgetMin->Text;
				if ($this->txtBudgetMax) $this->objTableProject->BudgetMax = $this->txtBudgetMax->Text;
				if ($this->txtFeatured) $this->objTableProject->Featured = $this->txtFeatured->Text;
				if ($this->txtHideBid) $this->objTableProject->HideBid = $this->txtHideBid->Text;
				if ($this->txtHideSearch) $this->objTableProject->HideSearch = $this->txtHideSearch->Text;
				if ($this->txtGoldOnly) $this->objTableProject->GoldOnly = $this->txtGoldOnly->Text;
				if ($this->txtEnable) $this->objTableProject->Enable = $this->txtEnable->Text;
				if ($this->txtSendmail) $this->objTableProject->Sendmail = $this->txtSendmail->Text;
				if ($this->txtTotalBid) $this->objTableProject->TotalBid = $this->txtTotalBid->Text;
				if ($this->calTimeLimitDate) $this->objTableProject->TimeLimitDate = $this->calTimeLimitDate->DateTime;
				if ($this->calPostDate) $this->objTableProject->PostDate = $this->calPostDate->DateTime;
				if ($this->calCancelDate) $this->objTableProject->CancelDate = $this->calCancelDate->DateTime;
				if ($this->calCloseDate) $this->objTableProject->CloseDate = $this->calCloseDate->DateTime;
				if ($this->calEndDate) $this->objTableProject->EndDate = $this->calEndDate->DateTime;
				if ($this->txtStatus) $this->objTableProject->Status = $this->txtStatus->Text;
				if ($this->lstWonUser) $this->objTableProject->WonUserId = $this->lstWonUser->SelectedValue;
				if ($this->txtAverageBid) $this->objTableProject->AverageBid = $this->txtAverageBid->Text;
				if ($this->calWonDate) $this->objTableProject->WonDate = $this->calWonDate->DateTime;
				if ($this->calStartDate) $this->objTableProject->StartDate = $this->calStartDate->DateTime;
				if ($this->calLastBidDate) $this->objTableProject->LastBidDate = $this->calLastBidDate->DateTime;
				if ($this->txtProgressNumber) $this->objTableProject->ProgressNumber = $this->txtProgressNumber->Text;
				if ($this->txtBudgetExact) $this->objTableProject->BudgetExact = $this->txtBudgetExact->Text;
				if ($this->lstUser) $this->objTableProject->UserId = $this->lstUser->SelectedValue;
				if ($this->calDeadline) $this->objTableProject->Deadline = $this->calDeadline->DateTime;
				if ($this->txtMainCategoryId) $this->objTableProject->MainCategoryId = $this->txtMainCategoryId->Text;
				if ($this->txtBudgetType) $this->objTableProject->BudgetType = $this->txtBudgetType->Text;
				if ($this->txtBuyerUsername) $this->objTableProject->BuyerUsername = $this->txtBuyerUsername->Text;
				if ($this->txtProviderUsername) $this->objTableProject->ProviderUsername = $this->txtProviderUsername->Text;
				if ($this->txtPageView) $this->objTableProject->PageView = $this->txtPageView->Text;

				// Update any UniqueReverseReferences (if any) for controls that have been created for it

				// Save the TableProject object
				$this->objTableProject->Save();

				// Finally, update any ManyToManyReferences (if any)
			} catch (QCallerException $objExc) {
				$objExc->IncrementOffset();
				throw $objExc;
			}
		}

		/**
		 * This will DELETE this object's TableProject instance from the database.
		 * It will also unassociate itself from any ManyToManyReferences.
		 */
		public function DeleteTableProject() {
			$this->objTableProject->Delete();
		}		



		///////////////////////////////////////////////
		// PUBLIC GETTERS and SETTERS
		///////////////////////////////////////////////

		/**
		 * Override method to perform a property "Get"
		 * This will get the value of $strName
		 *
		 * @param string $strName Name of the property to get
		 * @return mixed
		 */
		public function __get($strName) {
			switch ($strName) {
				// General MetaControlVariables
				case 'TableProject': return $this->objTableProject;
				case 'TitleVerb': return $this->strTitleVerb;
				case 'EditMode': return $this->blnEditMode;

				// Controls that point to TableProject fields -- will be created dynamically if not yet created
				case 'IdControl':
					if (!$this->lblId) return $this->lblId_Create();
					return $this->lblId;
				case 'IdLabel':
					if (!$this->lblId) return $this->lblId_Create();
					return $this->lblId;
				case 'CategoryIdControl':
					if (!$this->txtCategoryId) return $this->txtCategoryId_Create();
					return $this->txtCategoryId;
				case 'CategoryIdLabel':
					if (!$this->lblCategoryId) return $this->lblCategoryId_Create();
					return $this->lblCategoryId;
				case 'SubcategoryIdControl':
					if (!$this->txtSubcategoryId) return $this->txtSubcategoryId_Create();
					return $this->txtSubcategoryId;
				case 'SubcategoryIdLabel':
					if (!$this->lblSubcategoryId) return $this->lblSubcategoryId_Create();
					return $this->lblSubcategoryId;
				case 'TitleControl':
					if (!$this->txtTitle) return $this->txtTitle_Create();
					return $this->txtTitle;
				case 'TitleLabel':
					if (!$this->lblTitle) return $this->lblTitle_Create();
					return $this->lblTitle;
				case 'DescriptionControl':
					if (!$this->txtDescription) return $this->txtDescription_Create();
					return $this->txtDescription;
				case 'DescriptionLabel':
					if (!$this->lblDescription) return $this->lblDescription_Create();
					return $this->lblDescription;
				case 'OsControl':
					if (!$this->txtOs) return $this->txtOs_Create();
					return $this->txtOs;
				case 'OsLabel':
					if (!$this->lblOs) return $this->lblOs_Create();
					return $this->lblOs;
				case 'DbControl':
					if (!$this->txtDb) return $this->txtDb_Create();
					return $this->txtDb;
				case 'DbLabel':
					if (!$this->lblDb) return $this->lblDb_Create();
					return $this->lblDb;
				case 'BudgetMinControl':
					if (!$this->txtBudgetMin) return $this->txtBudgetMin_Create();
					return $this->txtBudgetMin;
				case 'BudgetMinLabel':
					if (!$this->lblBudgetMin) return $this->lblBudgetMin_Create();
					return $this->lblBudgetMin;
				case 'BudgetMaxControl':
					if (!$this->txtBudgetMax) return $this->txtBudgetMax_Create();
					return $this->txtBudgetMax;
				case 'BudgetMaxLabel':
					if (!$this->lblBudgetMax) return $this->lblBudgetMax_Create();
					return $this->lblBudgetMax;
				case 'FeaturedControl':
					if (!$this->txtFeatured) return $this->txtFeatured_Create();
					return $this->txtFeatured;
				case 'FeaturedLabel':
					if (!$this->lblFeatured) return $this->lblFeatured_Create();
					return $this->lblFeatured;
				case 'HideBidControl':
					if (!$this->txtHideBid) return $this->txtHideBid_Create();
					return $this->txtHideBid;
				case 'HideBidLabel':
					if (!$this->lblHideBid) return $this->lblHideBid_Create();
					return $this->lblHideBid;
				case 'HideSearchControl':
					if (!$this->txtHideSearch) return $this->txtHideSearch_Create();
					return $this->txtHideSearch;
				case 'HideSearchLabel':
					if (!$this->lblHideSearch) return $this->lblHideSearch_Create();
					return $this->lblHideSearch;
				case 'GoldOnlyControl':
					if (!$this->txtGoldOnly) return $this->txtGoldOnly_Create();
					return $this->txtGoldOnly;
				case 'GoldOnlyLabel':
					if (!$this->lblGoldOnly) return $this->lblGoldOnly_Create();
					return $this->lblGoldOnly;
				case 'EnableControl':
					if (!$this->txtEnable) return $this->txtEnable_Create();
					return $this->txtEnable;
				case 'EnableLabel':
					if (!$this->lblEnable) return $this->lblEnable_Create();
					return $this->lblEnable;
				case 'SendmailControl':
					if (!$this->txtSendmail) return $this->txtSendmail_Create();
					return $this->txtSendmail;
				case 'SendmailLabel':
					if (!$this->lblSendmail) return $this->lblSendmail_Create();
					return $this->lblSendmail;
				case 'TotalBidControl':
					if (!$this->txtTotalBid) return $this->txtTotalBid_Create();
					return $this->txtTotalBid;
				case 'TotalBidLabel':
					if (!$this->lblTotalBid) return $this->lblTotalBid_Create();
					return $this->lblTotalBid;
				case 'TimeLimitDateControl':
					if (!$this->calTimeLimitDate) return $this->calTimeLimitDate_Create();
					return $this->calTimeLimitDate;
				case 'TimeLimitDateLabel':
					if (!$this->lblTimeLimitDate) return $this->lblTimeLimitDate_Create();
					return $this->lblTimeLimitDate;
				case 'PostDateControl':
					if (!$this->calPostDate) return $this->calPostDate_Create();
					return $this->calPostDate;
				case 'PostDateLabel':
					if (!$this->lblPostDate) return $this->lblPostDate_Create();
					return $this->lblPostDate;
				case 'CancelDateControl':
					if (!$this->calCancelDate) return $this->calCancelDate_Create();
					return $this->calCancelDate;
				case 'CancelDateLabel':
					if (!$this->lblCancelDate) return $this->lblCancelDate_Create();
					return $this->lblCancelDate;
				case 'CloseDateControl':
					if (!$this->calCloseDate) return $this->calCloseDate_Create();
					return $this->calCloseDate;
				case 'CloseDateLabel':
					if (!$this->lblCloseDate) return $this->lblCloseDate_Create();
					return $this->lblCloseDate;
				case 'EndDateControl':
					if (!$this->calEndDate) return $this->calEndDate_Create();
					return $this->calEndDate;
				case 'EndDateLabel':
					if (!$this->lblEndDate) return $this->lblEndDate_Create();
					return $this->lblEndDate;
				case 'StatusControl':
					if (!$this->txtStatus) return $this->txtStatus_Create();
					return $this->txtStatus;
				case 'StatusLabel':
					if (!$this->lblStatus) return $this->lblStatus_Create();
					return $this->lblStatus;
				case 'WonUserIdControl':
					if (!$this->lstWonUser) return $this->lstWonUser_Create();
					return $this->lstWonUser;
				case 'WonUserIdLabel':
					if (!$this->lblWonUserId) return $this->lblWonUserId_Create();
					return $this->lblWonUserId;
				case 'AverageBidControl':
					if (!$this->txtAverageBid) return $this->txtAverageBid_Create();
					return $this->txtAverageBid;
				case 'AverageBidLabel':
					if (!$this->lblAverageBid) return $this->lblAverageBid_Create();
					return $this->lblAverageBid;
				case 'WonDateControl':
					if (!$this->calWonDate) return $this->calWonDate_Create();
					return $this->calWonDate;
				case 'WonDateLabel':
					if (!$this->lblWonDate) return $this->lblWonDate_Create();
					return $this->lblWonDate;
				case 'StartDateControl':
					if (!$this->calStartDate) return $this->calStartDate_Create();
					return $this->calStartDate;
				case 'StartDateLabel':
					if (!$this->lblStartDate) return $this->lblStartDate_Create();
					return $this->lblStartDate;
				case 'LastBidDateControl':
					if (!$this->calLastBidDate) return $this->calLastBidDate_Create();
					return $this->calLastBidDate;
				case 'LastBidDateLabel':
					if (!$this->lblLastBidDate) return $this->lblLastBidDate_Create();
					return $this->lblLastBidDate;
				case 'ProgressNumberControl':
					if (!$this->txtProgressNumber) return $this->txtProgressNumber_Create();
					return $this->txtProgressNumber;
				case 'ProgressNumberLabel':
					if (!$this->lblProgressNumber) return $this->lblProgressNumber_Create();
					return $this->lblProgressNumber;
				case 'BudgetExactControl':
					if (!$this->txtBudgetExact) return $this->txtBudgetExact_Create();
					return $this->txtBudgetExact;
				case 'BudgetExactLabel':
					if (!$this->lblBudgetExact) return $this->lblBudgetExact_Create();
					return $this->lblBudgetExact;
				case 'UserIdControl':
					if (!$this->lstUser) return $this->lstUser_Create();
					return $this->lstUser;
				case 'UserIdLabel':
					if (!$this->lblUserId) return $this->lblUserId_Create();
					return $this->lblUserId;
				case 'DeadlineControl':
					if (!$this->calDeadline) return $this->calDeadline_Create();
					return $this->calDeadline;
				case 'DeadlineLabel':
					if (!$this->lblDeadline) return $this->lblDeadline_Create();
					return $this->lblDeadline;
				case 'MainCategoryIdControl':
					if (!$this->txtMainCategoryId) return $this->txtMainCategoryId_Create();
					return $this->txtMainCategoryId;
				case 'MainCategoryIdLabel':
					if (!$this->lblMainCategoryId) return $this->lblMainCategoryId_Create();
					return $this->lblMainCategoryId;
				case 'BudgetTypeControl':
					if (!$this->txtBudgetType) return $this->txtBudgetType_Create();
					return $this->txtBudgetType;
				case 'BudgetTypeLabel':
					if (!$this->lblBudgetType) return $this->lblBudgetType_Create();
					return $this->lblBudgetType;
				case 'BuyerUsernameControl':
					if (!$this->txtBuyerUsername) return $this->txtBuyerUsername_Create();
					return $this->txtBuyerUsername;
				case 'BuyerUsernameLabel':
					if (!$this->lblBuyerUsername) return $this->lblBuyerUsername_Create();
					return $this->lblBuyerUsername;
				case 'ProviderUsernameControl':
					if (!$this->txtProviderUsername) return $this->txtProviderUsername_Create();
					return $this->txtProviderUsername;
				case 'ProviderUsernameLabel':
					if (!$this->lblProviderUsername) return $this->lblProviderUsername_Create();
					return $this->lblProviderUsername;
				case 'PageViewControl':
					if (!$this->txtPageView) return $this->txtPageView_Create();
					return $this->txtPageView;
				case 'PageViewLabel':
					if (!$this->lblPageView) return $this->lblPageView_Create();
					return $this->lblPageView;
				default:
					try {
						return parent::__get($strName);
					} catch (QCallerException $objExc) {
						$objExc->IncrementOffset();
						throw $objExc;
					}
			}
		}

		/**
		 * Override method to perform a property "Set"
		 * This will set the property $strName to be $mixValue
		 *
		 * @param string $strName Name of the property to set
		 * @param string $mixValue New value of the property
		 * @return mixed
		 */
		public function __set($strName, $mixValue) {
			try {
				switch ($strName) {
					// Controls that point to TableProject fields
					case 'IdControl':
						return ($this->lblId = QType::Cast($mixValue, 'QControl'));
					case 'CategoryIdControl':
						return ($this->txtCategoryId = QType::Cast($mixValue, 'QControl'));
					case 'SubcategoryIdControl':
						return ($this->txtSubcategoryId = QType::Cast($mixValue, 'QControl'));
					case 'TitleControl':
						return ($this->txtTitle = QType::Cast($mixValue, 'QControl'));
					case 'DescriptionControl':
						return ($this->txtDescription = QType::Cast($mixValue, 'QControl'));
					case 'OsControl':
						return ($this->txtOs = QType::Cast($mixValue, 'QControl'));
					case 'DbControl':
						return ($this->txtDb = QType::Cast($mixValue, 'QControl'));
					case 'BudgetMinControl':
						return ($this->txtBudgetMin = QType::Cast($mixValue, 'QControl'));
					case 'BudgetMaxControl':
						return ($this->txtBudgetMax = QType::Cast($mixValue, 'QControl'));
					case 'FeaturedControl':
						return ($this->txtFeatured = QType::Cast($mixValue, 'QControl'));
					case 'HideBidControl':
						return ($this->txtHideBid = QType::Cast($mixValue, 'QControl'));
					case 'HideSearchControl':
						return ($this->txtHideSearch = QType::Cast($mixValue, 'QControl'));
					case 'GoldOnlyControl':
						return ($this->txtGoldOnly = QType::Cast($mixValue, 'QControl'));
					case 'EnableControl':
						return ($this->txtEnable = QType::Cast($mixValue, 'QControl'));
					case 'SendmailControl':
						return ($this->txtSendmail = QType::Cast($mixValue, 'QControl'));
					case 'TotalBidControl':
						return ($this->txtTotalBid = QType::Cast($mixValue, 'QControl'));
					case 'TimeLimitDateControl':
						return ($this->calTimeLimitDate = QType::Cast($mixValue, 'QControl'));
					case 'PostDateControl':
						return ($this->calPostDate = QType::Cast($mixValue, 'QControl'));
					case 'CancelDateControl':
						return ($this->calCancelDate = QType::Cast($mixValue, 'QControl'));
					case 'CloseDateControl':
						return ($this->calCloseDate = QType::Cast($mixValue, 'QControl'));
					case 'EndDateControl':
						return ($this->calEndDate = QType::Cast($mixValue, 'QControl'));
					case 'StatusControl':
						return ($this->txtStatus = QType::Cast($mixValue, 'QControl'));
					case 'WonUserIdControl':
						return ($this->lstWonUser = QType::Cast($mixValue, 'QControl'));
					case 'AverageBidControl':
						return ($this->txtAverageBid = QType::Cast($mixValue, 'QControl'));
					case 'WonDateControl':
						return ($this->calWonDate = QType::Cast($mixValue, 'QControl'));
					case 'StartDateControl':
						return ($this->calStartDate = QType::Cast($mixValue, 'QControl'));
					case 'LastBidDateControl':
						return ($this->calLastBidDate = QType::Cast($mixValue, 'QControl'));
					case 'ProgressNumberControl':
						return ($this->txtProgressNumber = QType::Cast($mixValue, 'QControl'));
					case 'BudgetExactControl':
						return ($this->txtBudgetExact = QType::Cast($mixValue, 'QControl'));
					case 'UserIdControl':
						return ($this->lstUser = QType::Cast($mixValue, 'QControl'));
					case 'DeadlineControl':
						return ($this->calDeadline = QType::Cast($mixValue, 'QControl'));
					case 'MainCategoryIdControl':
						return ($this->txtMainCategoryId = QType::Cast($mixValue, 'QControl'));
					case 'BudgetTypeControl':
						return ($this->txtBudgetType = QType::Cast($mixValue, 'QControl'));
					case 'BuyerUsernameControl':
						return ($this->txtBuyerUsername = QType::Cast($mixValue, 'QControl'));
					case 'ProviderUsernameControl':
						return ($this->txtProviderUsername = QType::Cast($mixValue, 'QControl'));
					case 'PageViewControl':
						return ($this->txtPageView = QType::Cast($mixValue, 'QControl'));
					default:
						return parent::__set($strName, $mixValue);
				}
			} catch (QCallerException $objExc) {
				$objExc->IncrementOffset();
				throw $objExc;
			}
		}
	}
?>